//变量提升（内层变量覆盖外层变量，原因var没有块级作用域的概念）

//--------1--------
// var a=1;
// function f(){
//     console.log(a);//undefined,查找a的时候if的块级作用域{} 无效，因此是先查找到if中的a
//     if(false){
//         var a='helle word';
//     }
// }
// f();

// //--------2--------

// for(var b=0;b<5;b++)
// {

// }
// console.log(b);//5 for循环中的计数变量泄露到了全局 再次应证var没有块级作用域的概念


//-------3-------
// function f1() {
//     let n = 5;
//     if (true) {
//       var n = 10;
//     }
//     console.log(n); // 报错：Identifier 'n' has already been declared
//   }
//   f1();


//--------4-------
function f1() {
    let n = 5;
    if (true) {
      let n = 10;
    }
    console.log(n); // 5
  }
  f1();

  //总结-----ES6中变量不能在同一个作用域中声明，因为var 没有块级作用域的概念 所以 var申明的变量比较特殊
